\hypertarget{class_opencv_sf_m_1_1_points_to_track}{
\section{OpencvSfM::PointsToTrack Class Reference}
\label{class_opencv_sf_m_1_1_points_to_track}\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
}


This class can be used to store informations about points and features. This is an abstract class: you can't use it directly. Use for instance \hyperlink{class_opencv_sf_m_1_1_points_to_track_with_image}{PointsToTrackWithImage}.  




{\ttfamily \#include $<$PointsToTrack.h$>$}

Inheritance diagram for OpencvSfM::PointsToTrack:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_opencv_sf_m_1_1_points_to_track}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_opencv_sf_m_1_1_points_to_track_a0974269063e5a7708e1b992480666f87}{PointsToTrack} (std::vector$<$ cv::KeyPoint $>$ keypoints=std::vector$<$ cv::KeyPoint $>$(0), cv::Mat descriptors=cv::Mat())
\item 
virtual \hyperlink{class_opencv_sf_m_1_1_points_to_track_a530e94d0c39358538d907e977263cae0}{$\sim$PointsToTrack} (void)
\item 
virtual int \hyperlink{class_opencv_sf_m_1_1_points_to_track_ab672d2d9b350500dde92f0d39c8c2a98}{computeKeypointsAndDesc} ()
\item 
virtual int \hyperlink{class_opencv_sf_m_1_1_points_to_track_ac7009164560dac1f4d3283c4bf1181a3}{computeKeypoints} ()
\item 
virtual void \hyperlink{class_opencv_sf_m_1_1_points_to_track_a1e5ef9b8da87d1b412c348ad813d0267}{computeDescriptors} ()
\item 
virtual void \hyperlink{class_opencv_sf_m_1_1_points_to_track_a6ac0b2e69bb0fa51af529ec395fd0df7}{addKeypoints} (std::vector$<$ cv::KeyPoint $>$ keypoints, cv::Mat descriptors=cv::Mat(), bool computeMissingDescriptor=false)
\item 
std::vector$<$ cv::KeyPoint $>$ \hyperlink{class_opencv_sf_m_1_1_points_to_track_ab646203ef4a8955b9540ffc5b78943d4}{getKeypoints} () const 
\item 
cv::Mat \hyperlink{class_opencv_sf_m_1_1_points_to_track_a4ca955b907dee279030559d255a4e151}{getDescriptors} () const 
\item 
void \hyperlink{class_opencv_sf_m_1_1_points_to_track_adda3cb43ad421e89b8ddfe24f1c30b30}{printPointsOnImage} (const cv::Mat \&image, cv::Mat \&outImg, const cv::Scalar \&color=cv::Scalar::all(-\/1), int flags=cv::DrawMatchesFlags::DEFAULT) const 
\item 
\hypertarget{class_opencv_sf_m_1_1_points_to_track_a2a3e9cb24add788e7c4970d248d789ba}{
void {\bfseries read} (const cv::FileNode \&fn)}
\label{class_opencv_sf_m_1_1_points_to_track_a2a3e9cb24add788e7c4970d248d789ba}

\item 
\hypertarget{class_opencv_sf_m_1_1_points_to_track_a4313423bb8db1700a7639fbfddb173b5}{
void {\bfseries write} (cv::FileStorage \&fs) const }
\label{class_opencv_sf_m_1_1_points_to_track_a4313423bb8db1700a7639fbfddb173b5}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_opencv_sf_m_1_1_points_to_track_a08c9523080571e71e30b11a2f8b9c6b9}{
std::vector$<$ cv::KeyPoint $>$ \hyperlink{class_opencv_sf_m_1_1_points_to_track_a08c9523080571e71e30b11a2f8b9c6b9}{keypoints\_\-}}
\label{class_opencv_sf_m_1_1_points_to_track_a08c9523080571e71e30b11a2f8b9c6b9}

\begin{DoxyCompactList}\small\item\em This attribute will store points coordinates and sometimes orientation and size. \end{DoxyCompactList}\item 
\hypertarget{class_opencv_sf_m_1_1_points_to_track_adcbf3783bdf4a2a1d3e10c4b74224899}{
cv::Mat \hyperlink{class_opencv_sf_m_1_1_points_to_track_adcbf3783bdf4a2a1d3e10c4b74224899}{descriptors\_\-}}
\label{class_opencv_sf_m_1_1_points_to_track_adcbf3783bdf4a2a1d3e10c4b74224899}

\begin{DoxyCompactList}\small\item\em this attribute will store descritors for each points in a matrix with size (n$\ast$m), where n is the number of points and m is the desciptor size. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class can be used to store informations about points and features. This is an abstract class: you can't use it directly. Use for instance \hyperlink{class_opencv_sf_m_1_1_points_to_track_with_image}{PointsToTrackWithImage}. 

To create a structure from motion, most methods use points to compute the structure. This class focus on the first task in SfM: find points in image which are easy to track... When available, a feature vector for each points is very helpful: the matching will be easier. 

Definition at line 18 of file PointsToTrack.h.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_opencv_sf_m_1_1_points_to_track_a0974269063e5a7708e1b992480666f87}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!PointsToTrack@{PointsToTrack}}
\index{PointsToTrack@{PointsToTrack}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{PointsToTrack}]{\setlength{\rightskip}{0pt plus 5cm}OpencvSfM::PointsToTrack::PointsToTrack (
\begin{DoxyParamCaption}
\item[{std::vector$<$ cv::KeyPoint $>$}]{keypoints = {\ttfamily std::vector$<$cv::KeyPoint$>$(0)}, }
\item[{cv::Mat}]{descriptors = {\ttfamily cv::Mat()}}
\end{DoxyParamCaption}
)}}
\label{class_opencv_sf_m_1_1_points_to_track_a0974269063e5a7708e1b992480666f87}
this constructor create an object with available information... 
\begin{DoxyParams}{Parameters}
{\em keypoints} & the points we will try to track... \\
\hline
{\em descriptors} & the feature vector for each points... \\
\hline
\end{DoxyParams}


Definition at line 12 of file PointsToTrack.cpp.

\hypertarget{class_opencv_sf_m_1_1_points_to_track_a530e94d0c39358538d907e977263cae0}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!$\sim$PointsToTrack@{$\sim$PointsToTrack}}
\index{$\sim$PointsToTrack@{$\sim$PointsToTrack}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{$\sim$PointsToTrack}]{\setlength{\rightskip}{0pt plus 5cm}OpencvSfM::PointsToTrack::$\sim$PointsToTrack (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_a530e94d0c39358538d907e977263cae0}
Destructor : delete points and features vectors 

Definition at line 17 of file PointsToTrack.cpp.



\subsection{Member Function Documentation}
\hypertarget{class_opencv_sf_m_1_1_points_to_track_a6ac0b2e69bb0fa51af529ec395fd0df7}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!addKeypoints@{addKeypoints}}
\index{addKeypoints@{addKeypoints}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{addKeypoints}]{\setlength{\rightskip}{0pt plus 5cm}void OpencvSfM::PointsToTrack::addKeypoints (
\begin{DoxyParamCaption}
\item[{std::vector$<$ cv::KeyPoint $>$}]{keypoints, }
\item[{cv::Mat}]{descriptors = {\ttfamily cv::Mat()}, }
\item[{bool}]{computeMissingDescriptor = {\ttfamily false}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_a6ac0b2e69bb0fa51af529ec395fd0df7}
This method is used to add Keypoints... 
\begin{DoxyParams}{Parameters}
{\em keypoints} & Keypoints to add \\
\hline
{\em descriptors} & of points, if any \\
\hline
{\em computeMissingDescriptor} & if true, the missing descriptors are computed. \\
\hline
\end{DoxyParams}


Definition at line 41 of file PointsToTrack.cpp.

\hypertarget{class_opencv_sf_m_1_1_points_to_track_a1e5ef9b8da87d1b412c348ad813d0267}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!computeDescriptors@{computeDescriptors}}
\index{computeDescriptors@{computeDescriptors}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{computeDescriptors}]{\setlength{\rightskip}{0pt plus 5cm}void OpencvSfM::PointsToTrack::computeDescriptors (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_a1e5ef9b8da87d1b412c348ad813d0267}
This method is used to compute only descriptors... 

Reimplemented in \hyperlink{class_opencv_sf_m_1_1_points_to_track_with_image_aee97104c9c66601e5c51237717cb2522}{OpencvSfM::PointsToTrackWithImage}.



Definition at line 37 of file PointsToTrack.cpp.



Referenced by addKeypoints(), and computeKeypointsAndDesc().

\hypertarget{class_opencv_sf_m_1_1_points_to_track_ac7009164560dac1f4d3283c4bf1181a3}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!computeKeypoints@{computeKeypoints}}
\index{computeKeypoints@{computeKeypoints}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{computeKeypoints}]{\setlength{\rightskip}{0pt plus 5cm}int OpencvSfM::PointsToTrack::computeKeypoints (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_ac7009164560dac1f4d3283c4bf1181a3}
This method is used to compute only Keypoints... \begin{DoxyReturn}{Returns}
the number of points 
\end{DoxyReturn}


Reimplemented in \hyperlink{class_opencv_sf_m_1_1_points_to_track_with_image_a4fba046ec6498fcea5b38253d19b80f9}{OpencvSfM::PointsToTrackWithImage}.



Definition at line 31 of file PointsToTrack.cpp.



Referenced by computeKeypointsAndDesc().

\hypertarget{class_opencv_sf_m_1_1_points_to_track_ab672d2d9b350500dde92f0d39c8c2a98}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!computeKeypointsAndDesc@{computeKeypointsAndDesc}}
\index{computeKeypointsAndDesc@{computeKeypointsAndDesc}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{computeKeypointsAndDesc}]{\setlength{\rightskip}{0pt plus 5cm}int OpencvSfM::PointsToTrack::computeKeypointsAndDesc (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_ab672d2d9b350500dde92f0d39c8c2a98}
This method is used to compute both Keypoints and descriptors... \begin{DoxyReturn}{Returns}
the number of points 
\end{DoxyReturn}


Definition at line 23 of file PointsToTrack.cpp.

\hypertarget{class_opencv_sf_m_1_1_points_to_track_a4ca955b907dee279030559d255a4e151}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!getDescriptors@{getDescriptors}}
\index{getDescriptors@{getDescriptors}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{getDescriptors}]{\setlength{\rightskip}{0pt plus 5cm}cv::Mat OpencvSfM::PointsToTrack::getDescriptors (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_a4ca955b907dee279030559d255a4e151}
this method return the descritors for each points in a matrix with size (n$\ast$m), where n is the number of points and m is the desciptor size. \begin{DoxyReturn}{Returns}
descritors for each points in a matrix with size (n$\ast$m), where n is the number of points and m is the desciptor size. 
\end{DoxyReturn}


Definition at line 65 of file PointsToTrack.h.

\hypertarget{class_opencv_sf_m_1_1_points_to_track_ab646203ef4a8955b9540ffc5b78943d4}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!getKeypoints@{getKeypoints}}
\index{getKeypoints@{getKeypoints}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{getKeypoints}]{\setlength{\rightskip}{0pt plus 5cm}std::vector$<$cv::KeyPoint$>$ OpencvSfM::PointsToTrack::getKeypoints (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{class_opencv_sf_m_1_1_points_to_track_ab646203ef4a8955b9540ffc5b78943d4}
this method return the points coordinates and sometimes orientation and size \begin{DoxyReturn}{Returns}
points coordinates and sometimes orientation and size 
\end{DoxyReturn}


Definition at line 60 of file PointsToTrack.h.

\hypertarget{class_opencv_sf_m_1_1_points_to_track_adda3cb43ad421e89b8ddfe24f1c30b30}{
\index{OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}!printPointsOnImage@{printPointsOnImage}}
\index{printPointsOnImage@{printPointsOnImage}!OpencvSfM::PointsToTrack@{OpencvSfM::PointsToTrack}}
\subsubsection[{printPointsOnImage}]{\setlength{\rightskip}{0pt plus 5cm}void OpencvSfM::PointsToTrack::printPointsOnImage (
\begin{DoxyParamCaption}
\item[{const cv::Mat \&}]{image, }
\item[{cv::Mat \&}]{outImg, }
\item[{const cv::Scalar \&}]{color = {\ttfamily cv::Scalar::all(-\/1)}, }
\item[{int}]{flags = {\ttfamily cv::DrawMatchesFlags::DEFAULT}}
\end{DoxyParamCaption}
) const}}
\label{class_opencv_sf_m_1_1_points_to_track_adda3cb43ad421e89b8ddfe24f1c30b30}
To show the points on image, use this function to draw points on it. 
\begin{DoxyParams}{Parameters}
{\em image} & Source image. \\
\hline
{\em outImg} & Output image. Its content depends on flags value what is drawn in output image. See possible flags bit values. \\
\hline
{\em color} & Color of keypoints \\
\hline
{\em flags} & Possible flags bit values is defined by DrawMatchesFlags (see \href{http://opencv.willowgarage.com/documentation/cpp/features2d_drawing_function_of_keypoints_and_matches.html#cv-drawmatches}{\tt http://opencv.willowgarage.com/documentation/cpp/features2d\_\-drawing\_\-function\_\-of\_\-keypoints\_\-and\_\-matches.html\#cv-\/drawmatches}) \\
\hline
\end{DoxyParams}


Definition at line 64 of file PointsToTrack.cpp.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
D:/Travail/These/Determination caracteristiques camera/GSoC/SfM/src/PointsToTrack.h\item 
D:/Travail/These/Determination caracteristiques camera/GSoC/SfM/src/PointsToTrack.cpp\end{DoxyCompactItemize}
